//
// StoreNuke.Net -  http://www.storenuke.net
// Copyright (c) 2005
// by Robert J Collins ( info@storenuke.net ) of WillowTree Software, Inc. ( http://www.willowtreesoftware.com )
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
// documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
// to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions 
// of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
//

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.UI;

namespace StoreNuke.StarterKit.Commerce 
{ 
	public class MakeThumbnail : Page 
	{ 
		protected override void OnPreRender(EventArgs e) 
		{ 
		Image _Thumb; 
		Image _OrginalImg; 
		string _FileName; 
		IntPtr _Inp = new IntPtr(); 
		int _RequestedWidth; 
		int _Height; 
		int _Width; 
		decimal _Percent;
		string _Rootpath = Server.MapPath(".") + "\\"; 
		string _ProductPath = _Rootpath + "ProductImages\\"; 
		string fileExt = ".gif";

		_FileName = Page.Request.QueryString["ID"]; 
		_RequestedWidth = Convert.ToInt32(Page.Request.QueryString["W"]); 

		try { 
		_OrginalImg = Image.FromFile(_ProductPath + _FileName); 
		} catch (Exception Except) { 
		_OrginalImg = Image.FromFile(_Rootpath + "error.gif"); 
		} 

		fileExt = _FileName.Substring(_FileName.IndexOf("."));

		_Height = _OrginalImg.Height; 
		_Width = _OrginalImg.Width; 
		_Percent = Convert.ToDecimal(Convert.ToDecimal(_RequestedWidth) / Convert.ToDecimal(_Width)); 
		_Height = Convert.ToInt32(_Percent * _Height); 
		_Thumb = _OrginalImg.GetThumbnailImage(_RequestedWidth, _Height, null, _Inp); 

		if((fileExt.ToLower() == ".gif") || (fileExt.ToLower() == ".png"))
		{
			Page.Response.ContentType = "image/gif"; 
			_Thumb.Save(Page.Response.OutputStream, ImageFormat.Gif);
		}
		else
		{
			Page.Response.ContentType = "image/jpeg"; 
			_Thumb.Save(Page.Response.OutputStream, ImageFormat.Jpeg); 
		}
		
		_OrginalImg.Dispose(); 
		_Thumb.Dispose(); 
		base.OnPreRender(e); 
		} 
	} 
}